//同步加载正文。
var raw = "";
$.ajax('address-book.md', {
  async: false,
  type: "GET",
  dataType: 'text',
  success: function (text) {
    raw = text;
  }
});

var tree = markdown.parse(raw);
var reg = /^(.{2,4})(?:：|:)(.+)/mg
/**
 * markdown解析后的数据格式：['markdown|html',[]..]
 *
 */
// ["markdown",
// Array[5]
// 0: "header"
// 1: {level:2}
// 2: "地址："
// 3: Array[2]
// 4: "太原市体育路403号，大豪益达"
// length: 5
// __proto__: Array[0]
//
//["markdown", Array[3], Array[3], Array[2], Array[4], Array[3], Array[3],
// Array[2], Array[2]0: "para"1: "地址：山西省太原市南中环街电子数码港"length: 2__proto__:
// Array[0], Array[3], Array[2]0: "para"1:
// "成立于1994年，通过ISO9001质量体系认证，是山西省早期从事IT事业并在省内长期处于领先地位的IT企业。连续5年获得山西省10强电脑公司称号。
// 新汇科公司是一家蓬勃发展、充满生机的IT朝阳企业，公司一直致力于将国内外最先进的IT产品、最优秀的解决方案推广运用于山西这个中国最具有发展潜力的内陆省份，用户遍及省内外。"length:
// 2__proto__: Array[0], Array[2], Array[3], Array[2], Array[2]]

var data = []


if (tree[0] == 'markdown') {
  //检索到“列表”小节，应该是h2
  var i = 1
  for (; i < tree.length; i++) {
    var node = tree[i];
    if (node[0] == 'header' && node[2] == '列表') {
      break;
    }
  }
  i++;//指针定位到h2之后的下一个
  //循环h2下面的所有段落，直到遇到下一个h2小节或者到头
  var section = []; //储存一个小节中的标题和所有段落
  while (i < tree.length && !(tree[i][0] == 'header' && tree[i][1].level == 2)) {
    var node = tree[i++];
    if (node[0] == 'header') {
      //终结上一个小节
      if (section.length > 0) {
        data.push(buildItem(section))
      }
      section = [node]
    }
    if (node[0] == 'para') {
      section.push(node)
    }
  }
  //循环结束还会落下最后一个
  if (section.length > 0) {
    data.push(buildItem(section))
  }


} else {
  alert("希望是markdown，但是：" + tree[0])
}


  /**
   * 将数组组装成地址簿对象
   */
function buildItem(section) {
  var json = {
    "name": section[0][2],
    "summary": section[1][1]
  }
  var rawMeta = section[2][1];
  var m = reg.exec(rawMeta);
  while (m) {
    json[m[1]] = m[2];
    m = reg.exec(rawMeta);
  }
  return json;
}